﻿using System;
using System.Collections;
using System.ComponentModel;
using System.Data;
using System.Linq;
using System.Web;
using System.Web.Services;
using System.Web.Services.Protocols;
using System.Xml.Linq;
using System.Collections.Generic;
using Model;

namespace Control
{
    /// <summary>
    /// RioCMS CRUD para Sites
    /// </summary>
    [WebService(
        Name = "SitesServices",
        Description = "RioCMS CRUD Sites",
        Namespace = "RioCMSControl"
    )]
    [WebServiceBinding(ConformsTo = WsiProfiles.BasicProfile1_1)]
    [ToolboxItem(false)]
    [System.Web.Script.Services.ScriptService]
    public class SitesServices : System.Web.Services.WebService
    {
        private MGSites mg = new MGSites();


		[WebMethod(Description = "Retorna um Site")]
		public Site get(uint id) {
			if (!this.mg.autenticar()) {
				return null;
			} else {
				return this.mg.get(id);
			}
		}
		[WebMethod(Description = "Cria uma copia de um Site")]
		public Site copiar(uint id) {
			if (!this.mg.autenticar()) {
				return null;
			} else {
				return this.mg.duplicar(id);
			}
		}
        [WebMethod(Description = "Retorna uma lista com todos os Sites")]
        public List<Site> listar()
        {
            if (!this.mg.autenticar())
            {
                return null;
            }
            else
            {
                return this.mg.listar();
            }
        }
        [WebMethod(Description = "Adicona um novo Site")]
        public bool adicionar(String nome, String tipo, String categoria, String descricao)
        {
            if (!this.mg.autenticar())
            {
                return false;
            }
            else
            {
                return this.mg.adicionar(nome, tipo, categoria, descricao);
            }
        }
		[WebMethod(Description = "Altera um Site")]
		public bool editar(uint id, String nome, String tipo, String categoria, String descricao) {
			if (!this.mg.autenticar()) {
				return false;
			} else {
				return this.mg.atualizar(id, nome, tipo, categoria, descricao);
			}
		}
        [WebMethod(Description = "Remove um site")]
        public bool remover(uint id)
        {
            if (!this.mg.autenticar())
            {
                return false;
            }
            else
            {
                return this.mg.remover(id);
            }
        }
    }

}
